<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>PAG</title>
    <link rel="icon" href="https://pag.io/img/favicon.png" />
    <style>
      body {
        padding: 12px;
      }
      .header {
        height: 64px;
        border-bottom: 1px solid rgb(193, 193, 193);
        margin-bottom: 24px;
      }
    </style>
  </head>
  <body>
    <div class="header">
      <img src="../assets/logo.png" alt="logo" width="133" height="48" />
    </div>
    <div>
      <span>before:</span>
      <canvas class="canvas" id="before-pag"></canvas>
      <span>after:</span>
      <canvas class="canvas" id="after-pag"></canvas>
    </div>
    <script src="https://unpkg.com/libpag@latest/lib/libpag.min.js"></script>
    <script>
      window.onload = async () => {
        const pagUrl = '../assets/text.pag';

        const PAG = await window.libpag.PAGInit();
        console.log(window.libpag);
        const fileBlob = await fetch(pagUrl).then((response) => response.blob());
        const file = new window.File([fileBlob], pagUrl.replace(/(.*\/)*([^.]+)/i, '$2'));
        // Before
        const beforePagFile = await PAG.PAGFile.load(file);
        document.getElementById('before-pag').width = 360;
        document.getElementById('before-pag').height = 360;
        const beforePagView = await PAG.PAGView.init(beforePagFile, '#before-pag');
        beforePagView.setRepeatCount(0);
        await beforePagView.play();
        // After
        const afterPagFile = await PAG.PAGFile.load(file);
        // Get TextDate by editableIndex.
        // About editableIndex look for `editable-index.html`
        const textDoc = await afterPagFile.getTextData(0);
        textDoc.text = '替换后的文字';
        textDoc.fillColor = { red: 255, green: 255, blue: 255 };
        textDoc.applyFill = true;
        textDoc.backgroundAlpha = 100;
        textDoc.backgroundColor = { red: 255, green: 0, blue: 0 };
        textDoc.baselineShift = 200;
        textDoc.fauxBold = true;
        textDoc.fauxItalic = false;
        textDoc.fontFamily = 'PingFang SC';
        textDoc.fontSize = 100;
        textDoc.justification = window.libpag.types.ParagraphJustification.CenterJustify;
        textDoc.strokeWidth = 20;
        textDoc.strokeColor = { red: 0, green: 0, blue: 0 };
        textDoc.applyStroke = true;
        textDoc.strokeOverFill = true;
        textDoc.tracking = 600;
        // Replace text by editableIndex
        afterPagFile.replaceText(0, textDoc);
        document.getElementById('after-pag').width = 360;
        document.getElementById('after-pag').height = 360;
        const afterPagView = await PAG.PAGView.init(afterPagFile, '#after-pag');
        afterPagView.setRepeatCount(0);
        await afterPagView.play();
      };
    </script>
  </body>
</html>
